layui.use(['form', 'layer', 'jquery', 'laydate'],
    function () {
        $ = layui.jquery;
        let form = layui.form,
            layer = layui.layer;
        let laydate = layui.laydate;
        //执行一个laydate实例
        laydate.render({
            elem: '#birthday' //指定元素
            , trigger: 'click'
        });

        //监听提交
        form.on('submit(edit)',
            function (data) {
                data = data.field;
                console.log(11111)
                let arr_box = [];
                $('input[type=checkbox]:checked').each(function () {
                    arr_box.push($(this).attr("title"));
                });
                //数组
                console.log(arr_box);
                //需要将数组转换为字符串
                data.hobby = arr_box.toLocaleString();
                data.id=sessionStorage.getItem("userId");
                console.log(data);
                //发异步，把数据提交给java
                let res = myAjax("/back/user/update", data, "post");
                if (res.count == 1) {
                    layer.alert("编辑成功", {
                            icon: 6
                        },
                        function () {
                            //关闭当前frame
                            xadmin.close();

                            // 可以对父窗口进行刷新
                            xadmin.father_reload();
                        });
                } else {
                    layer.alert("编辑失败");
                }
                return false;
            });
    });


$(function () {
    //页面加载完成得到传递过来的id
    let userId = sessionStorage.getItem("userId");
    findById(userId);
});

//根据id到数据库里面查询数据，将得到的数据赋值给当前页面的输入框
function findById(id) {
    let res = myAjax("/back/user/findById", {id: id}, "get");
    console.log(res);
    setData(res.data);
}

//赋值
function setData(data) {
    layui.use(['form', 'layer', 'jquery', 'laydate'],
        function () {
            $ = layui.jquery;
            let form = layui.form;
            $("#username").val(data.username);
            $("#email").val(data.email);

            $("#phone").val(data.phone);
            //需要将日期格式进行转换
            // let time = new Date().format("yyyy-MM-dd");
            // let date = new Date(data.birthday);
            // let birthday = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
            $("#birthday").val(data.birthday);

            $("#sex").val(data.sex);
            // let arr_box = [];
            //属性选择器
            // $('input[type=checkbox]:checked').each(function () {
            //     arr_box.push($(this).attr("title"));
            // });
            let hobbys = data.hobby.split(",");
            $('input[type=checkbox]').each(function () {
                //    如果复选框的title的值和爱好的值相等，则让当前的复选框选中
                for (let i = 0; i < hobbys.length; i++) {
                    if (hobbys[i] == $(this).attr("title")) {
                        $(this).attr("checked", "checked");
                    }
                }
            });
            //现在我们需要将数据库查询出来的爱好分别赋值给复选框，
            // $("#hobby").val(data.username);
            // $("#enable").val(data.enable);
            $('input[type=radio][value=' + data.enable + ']').attr("checked", "checked");
            form.render();
        });
}

// js其实也是面向对象，下面就算再封装对象
Date.prototype.format = function (fmt) {
    let o = {
        "M+": this.getMonth() + 1,                 //月份
        "d+": this.getDate(),                    //日
        "h+": this.getHours(),                   //小时
        "m+": this.getMinutes(),                 //分
        "s+": this.getSeconds(),                 //秒
        "q+": Math.floor((this.getMonth() + 3) / 3), //季度
        "S": this.getMilliseconds()             //毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
    }
    return fmt;
}
